package org.sundatagroup.aurora.core.service.querier;

import com.google.gson.JsonElement;

/**
 * <p>通用查询服务
 * <p>实现该接口的一般是服务层的类, 他们要实现一种协议, 用于查询数据,
 * 并以 Json 格式返回查询结果.
 * </p>
 * 
 * @author Zdream
 * @date 2018-05-30
 * @since 0.2.0
 */
public interface IQuerier {
	
	/**
	 * 该服务能够受理的所有类型说明
	 * @return
	 */
	String[] types();
	
	/**
	 * 查询
	 * @param type
	 *   查询的类型说明.
	 *   <br>需要传入的 <code>type</code> 是上面 <code>types()</code> 返回的其中一个元素
	 * @param key
	 *   查询要求
	 * @return
	 *   Json 数据, Json NULL 或 Json Array 也是可能的
	 */
	JsonElement query(String type, JsonElement key);

}
